package river_city_ransom.implementations;

import exceptions.ComposantError;
import river_city_ransom.services.GestionCombat;
import river_city_ransom.services.MoteurJeu;
import river_city_ransom.services.Terrain;
import river_city_ransom.types.Commande;
import river_city_ransom.types.EtatPartie;

public class MoteurJeu_I implements MoteurJeu{
	GestionCombat gestion;
	EtatPartie etat;
	Boolean partieTerminee;
	Terrain terrain;
	

	@Override
	public GestionCombat gestion() {
		return gestion;
	}

	@Override
	public EtatPartie resultatPartie() {
		return etat;
	}

	@Override
	public boolean partieTerminee() {
		return partieTerminee;
	}

	@Override
	public void init(Terrain t) throws ComposantError {
		this.terrain = t;
		this.etat = EtatPartie.EN_COURS;
		this.partieTerminee = false;
		gestion = new GestionCombat_I(t);
		gestion.init(t);
		
	}

	@Override
	public void calculerPasDeJeu(Commande commande1, Commande commande2)
			throws ComposantError {
		if(!partieTerminee())
			gestion().gerer(commande1, commande2);
		
	}

}
